16.02.2020

Super cheap STM32F030F4P6 ARM CORTEX-M0 board, programming with PlatformIO/Arduino

Cheap ARM0 boards on ebay


There are some super cheap STM32F030F4P6 ARM CORTEX-M0 boards available via ebay/Ali Express. They cost about $1.50 (incl shipping) and are usable via PlatformIO with Arduino software.
They are a bit limited, having only 16kB flash and 4kB RAM memory, but usable for a lot of projects.



Programmer needed


This board cannot be programmed via USB, although there is a connector it is only used to provide power. You need a programmer, i use a ST Link v2 compatible programmer obtained via ebay, costs about $2.50.



Connections


Connect the programmer to the board, you need 5 wires:

ST-Linkv2     Board
3.3V 3.3V
GND GND
RST NRST
SWCLK PA14
SWDIO PA13


Jumper


Set the Boot0-Jumper to "GND"


VS Code with PlatformIO


I use Microsofts Visual Studio Code on Linux (it's available for Windows and OSX too). Install the PlatformIO extension for Visual Studio Code and you are ready to go. This makes life much easier because PlatforIO takes care of installing all the libraries, SDKs and so on which are needed.

For the board choose Demo F030F4, Arduino for the environment. Plug in the programmer and put a blink sketch into "main.cpp":

#include

void setup()
{
// initialize LED digital pin as an output.
pinMode(LED_BUILTIN, OUTPUT);
}

void loop()
{
// turn the LED on (LOW is the voltage level)
digitalWrite(LED_BUILTIN, LOW);
// wait for 10ms
delay(10);
// turn the LED off by making the voltage HIGH
digitalWrite(LED_BUILTIN, HIGH);
// wait for two seconds
delay(2000);
}


Compile and transfer the program to the board and enjoy the warm glow of the LED blinking...

Links



21.12.2015

theMatrix - ESP8266 LED-Matrix mit WLAN

Ziel

Eine LED-Matrix-Anzeige, die mit dem Browser per WLAN angesteuert werden kann. Es soll Laufschrift angezeigt werden. Das ganze soll möglich preisgünstig sein und man sollte es ohne Löten aufbauen können. Möglichst einfache Konfiguration wäre auch noch prima. Und das Gerät sollte dem Benutzer auch noch die URL zeigen, unter der es im WLAN erreichbar ist. Also so was:


Was passiert im Video?


Die ESP8266-LED-Matrix
  1. wird eingeschaltet
  2. meldet sich im WLAN an
  3. zeigt die eigene IP-Adresse
  4. wird mit einem Text beschickt
  5. der Text scrollt auf der Matrix

Was brauchen wir, was kostet das?

  • ESP-12-WLAN-Modul (ca 3,50€ mit Breakout-Board) 
  • FTDI-232-Interface (temporär zum Programmieren) (ca 2€)
  • 8x8-LED-Matrix mit MAX7219-Chip (ab etwa 2,50€/Stück)
  • Stromversorgung 3,3 Volt (ab 2€)
  • Breadboard + Kabel (ab 3,00€)
Gesamtkosten mit 5 Matrix-Modulen (40x8 LEDs) knapp 25€. Alle Bauteile sind z.B. auf eBay erhältlich. Meist direkt aus China mit Lieferzeiten um die drei Wochen.


Schaltung

Fritzing-Dateien mit der Schaltung gibt es auf GitHub: https://github.com/hermann-kurz/esp8266WifiMatrix/tree/master/fritzing

ESP-12-WiFi-Modul

Für das WiFi-Modul wurde das ESP-12-Modul  (basierend auf dem ESP8266-Chip) genommen. Dieses Modul ist FCC-zugelassen also legal verwendbar, was auf andere Module mit dem ESP8266-Chip nicht zutrifft.

Ein Problem ist, dass die Pins im 2mm-Raster sind, das Breadboard aber ein 2,54mm-Raster hat. Deshalb ist es sinnvoll, gleich ein ESP-12-Modul auf einem Breakout-Board zu kaufen, das die Pins im 2,54mm-Raster bereitstellt - sonst muss man selbst Drähte anlöten, um es im Breadboard zu betreiben. Diese Module sind extrem preiswert (unter 3€) auf eBay erhältlich!

Arduino-Plattform auf ESP-12-Modul

Das Tolle am ESP-12-Modul ist, dass es sich über die Arduino-IDE programmieren lässt! Dazu wird eine angepasste IDE benutzt, die angepasste Libraries an Bord hat. Die Installation ist hier beschrieben. Damit hat man einen WiFi-fähigen Arduino für nur 3€. Einfach unglaublich..

MAX7219-Module

Für die Ansteuerung der 8x8-LED-Matrizen, werden MAX7219-Chips verwendet. Die sind eigentlich für 7-Segment-Anzeigen gedacht, aber jemand hat dafür eine Arduino-Libary zur Ansteuerung von 8x8-LED-Matrizen geschrieben, die wir nutzen. Fertige Module die eine LED-Matrix und das MAX7219-Ansteuer-IC enthalten gibt es ab etwa 2,50€ auf eBay.

Sinnvoll ist es, ferug aufgebaute Module zu kaufen, da bei Bausätzen öfter mal Bauteile fehlen, oder falsch sind.

Die Daten werden zu den MAX7219-Modulen seriell übertragen, sie brauchen nur drei Signale (CS, CLK und DIN) und können kaskadiert, also hintereinander geschaltet werden.

Die drei Anschlüsse werden dann  mit dem ESP8266 so verbunden:

ESP-12 (Name) ESP-12 (Pin) MAX7219-Matrix
GPIO_2 11 CS
GPIO_14 5 CLK
GPIO_13 7 DIN

Die Anzahl der benutzten Module wird dabei im Quellcode angepasst. Ich habe mal fünf Module hibtereinandergeschaltet, das ergibt dann eine 40x8-Matrix.

FTDI-Adapter

Um das ESP-12-Modul zu programmieren, braucht man noch einen USB/Seriell-Adapter mit 3,3V-Pegel. Am besten sucht man nach einem sogenannten FTDI232-Adapter. Es gibt allerdings auch sehr viele Clones, die gleich bezeichnet sind, aber unter Windows andere Treiber brauchen. Unter Linux funktionieren die Clones normalerweise out-of-the-box.

ESP-12 (Name) ESP-12 (Pin) FTDI232-Adapter
TXD 16 RXI
RXD 15 TXO

Wichtig ist noch, dass GND des Adapters mit GND des ESP-12-Moduls verbunden wird.

Programmiermodus 

Zum Programmieren müssen einige Pins des ESP-12-Moduls auf definierte Pegel gelegt werden:
ESP-12 (Name) ESP-12 (Pin) Pegel
CH_PD 3 3,3V
VCC 8 3,3V
GPIO_0 12 GND
GPIO_15 10 GND



GPIO0 (Pin12 des ESP-12) auf Masse (GND) gelegt werden. Nach dem Programmieren muss man das Kabel dann entfernen.

Schaltung/Aufbau auf Breadboard

Insgesamt ergibt sich damit folgende Schaltung, die man mit einem Breadboard zusammenstecken kann.

Fritzing

Die Schaltung ist als Fritzing-File auf GitHub verfügbar:

Software

Für die einzelnen Komponenten gibt es Arduino-Libraries. Die mussten teilweise ein bischen angepasst werden, damit sie verwendet werden konnten. Alle Libraries und das Hauptprogramm habe ich auf GitHub unter einer Open-Source-Lizenz verfügbar gemacht.

MAX7219-Matrix-Library

Wichtigster Bestandteil ist die Library MAX7219-Library von "Squix", die mit einigen Patches aus dessen Blog versehen wurde. Sie ist ebenfalls auf GitHub erhätlich: https://github.com/hermann-kurz/MAX7219LedMatrix

WiFi & Webserver

Für das ESP-8266-Modul ist eine WiFi-Library in der Arduino-Library enthalten, die direkt verwendet wird. Das Vorgehen ist so, dass sich das Modul nach dem Einschalten in das WLAN-Netz verbindet. Hierzu sind SSID und Passwort ins Programm einkompiliert.

Nachdem das ESP-Modul im WLAN-Netz ist, zeigt es seine URL mit IP-Adresse auf der Matrix an. Verbindet sich nun jemand mit dieser URL, sieht er eine Seite, wo er Text eingeben kann. Nach Abschicken wird dann der Text angezeigt, bis ein neuer eingegeben wird.

Eine Fallstrick ist noch der Zeichensatz: im Matrix-Modul ist ein Latin1-Font enthalten, über den Browser kommen aber UTF-8-codierte Zeichen rein, die nach Latin1 konvertiert werden.

Vorgehen

Schaltungsaufbau

Zuerst baut man die Schaltung auf. Ich habe dafür aus ein paar Holzleisten ein kleines Gehäuse gebaut, in dem die Display nach vorne bündig reinpassen. 


Hintenrum sieht das nicht sehr schön aus, funktioniert aber prima. Man sieht links die Stromversorgung, in der Mitte das Breadboard mit dem ESP-12 und im Hintergrund die fünf 8x8-Matrizen, die miteinander verbunden sind.


Spannung beachten

Man darf das ESP-12-Modul auf keinen Fall mit 5 Volt  betreiben, es verträgt nur 3,3 Volt. Beim Spannungsregler kann man das einstellen. Ich betreibe auch die LED-Matrizen mit 3,3 Volt. Die würden auch 5 Volt vertragen, das habe ich aber nicht getestet.

Software besorgen

Als nächstes besorgt man sich die Arduino-IDE für den SP8266 https://github.com/esp8266/Arduino uns installiert sie. Dann muss ggf noch ein Treiber für den FTD232-Adapter installiert werden.

Software kompilieren, SSID/Passwort anpassen

Dann holt man sich den Quellcode von https://github.com/hermann-kurz/esp8266WifiMatrix und installiert in der IDE die Library für die MAX7219-Module: https://github.com/hermann-kurz/MAX7219LedMatrix. Um ins eigene WLAN zu kommen muss im Quellcode SSI und Passwort angegeben werden.

Programmieren (Programmiermodus)

Nun kann man das ESP-12-Modul in den Programmiermodus schalten, indem man GPIO-0 auf Masse legt, das Modul programmieren programmieren, und anschließend den Programmiermodus wieder rausnehmen.

Inbetriebnahme

Das Gerät ist damit fertig. Nach Anlegen der Versorgungsspannung startet die Matrix und bucht sich ins WLAN ein. Anchließend wird die eigene URL angezeigt. Im Browser kann man nun einen Text eingeben, der nach dem Abschicken durchscrollt.

Verbesserungsmöglichkeiten

Setup

Momentan müssen SSID und Passwort in den Arduino-Sketch reinkompiliert werden. Da wäre eine eigene Setup-Routine sehr sinnvoll, mit dem man die WiFi-Matrix über einen Browser konfigurieren könnte.

Font

Der verwendete Font ist etwas "fett". Den könnte man etwas schmaler machen, dann würden auch mehr Zeichen auf einmal auf die Matrix passen.

Links

03.09.2015

Bluetooth-Wetterstation mit dem TI Sensortag

Neue Version der Wetterstations-Software

Vor einiger Zeit wurde hier eine Anleitung zum Bau einer Wetterstation mit dem TI-Sensortag gepostet.

Nachdem man  nicht mehr einfach einen kostenlosen TempoDB-Account bekommen kann, ist es Zeit, für eine zweite Version der Wetterstationssoftware für das Texas-Instruments-Sensortag. Sie nutzt  nun den Service von thingspeak.com zum Speichern und Visualisieren der Messdaten. Zusätzlich wird eine neue verbesserte Firmware für das Sensortag eingesetzt.

Beispiel: Livedaten im iFrame via Thingspeak.com



Sensortag von Texas-Instruments

Wichtig: diese Anleitung ist für die alte Version des TI-Sensortag, nicht die neue Version (Simplelink Sensortag)

Die Hardware bleibt gleich, wir verwenden auch das alte Wetterhäuschen aus der alten Anleitung.

Das TI-Sensortag (Version 1) enthält jede Menge Sensoren, die eigentlich schon eine komplette Wetterstation sind. Neben dem Thermometer gibt es einen Luftdrucksensor, einen Luftfeuchtigkeitssensor und (hier weniger relevante) Magnetfeld und Beschleunigungssensoren.

Problematische Firmware

Das Sensortag hat zwei Probleme
  • der Stromverbrauch ist relativ hoch, d.h. die eingebaute Knopfzelle hält nur wenige Wochen
  • Es baut den Kontakt zur Basisstation nicht von selbst aus: man muss einen Knopf auf dem Sensortag drücken, wenn der Kontakt verlorengeht. Das ist sehr schade wenn man den Kontaktverlust nicht bemerkt, dann werden keine Werte mehr gemessen.

Schritt 1: Neue Firmware aufspielen

Beide Probleme werden durch die myWeasthercenter-Firmware gelöst, die man per App auf das Sensortag aufspielt.

Externe Batterie

Zusätzlich habe ich die Knopfzelle des Sensortag durch zwei hintereinandergeschaltete Monozellen ersetzt, die haben eine etwa 100 Mal so große Kapazität (20000 mAh), wie die Knopfzelle. Mal sehen, wie lang das hält..

Schritt 2: Bluetooth-Low-Energy-Untertützung am Raspberry Pi

Das TI-Sensortag liefert seine Daten über Bluetooth-Low-Energy. Die Daten sendet es bei meinem Stup an einen Raspberry Pi, für den man einen USB-Bluetooth-Low-Energy-Dongle braucht. Ich habe das Plugable usb-bt4le-Dongle verwendet.

Hier muß man eine neuere Version des Bluez-Bluetooth-Stacks für Linux selbst kompilieren, um BLE-Support zu erhalten. Wie das geht, hat Michael Saunby beschrieben.

Schritt 3: BluePy-Library kompilieren

Um von Python-Scripten auf BLE-Funktionen zugreifen zu können, barucht man die BluePy-Library, die man selbst kompilieren muß.

Schritt 4: API-Key auf thingspeak.com besorgen

Dieses Projekt nutzt thingspeak.com, um die Daten zu speichern und zu visualisieren. Dazu muß man sich dort einen kostenlosen Account beantragen und kann dann sogenannte Channels anlegen. Für den Channel bekommt man einen API-Key. Einzige Einschränkung eines kostenlosen Accounts ist, daß man max. alle 15 Sekunden Werte auf thingspeak.com speichern kann, was für unsere Zwecke locker ausreicht.

Schritt 5: Script installieren

Auf GitHub gibt es ein fertiges Python-Script (sensortag-thingspeak-cron.py zur Einbindung in Shell-Script) von mir. dazu müssen noch folgende Konfigurationswerte im Script eingetragen werden:
  • THINGSPEAK_APIKEY: API-Key aus Schritt 4
  • TAG_ID: Bluetooth-Adresse des Sensor Tag, kann mit "hcitool lescan" ermittelt werden
  • HEIGHT: Höhe des Standorts in Metern über Meereshöhe (wird zur Berechnung des Luftrucks benötigt)
Es ist noch ein Shell-Script beigelegt, das beim Aufruf eine evtl. laufendes Helper-Script beendet, bevor es das Python-Script startet. 

Ergebnis

Die Daten werden auf Thingspeak.com gespeichert, dort kann man sie sich  in einer konfigurierbaren Chart ansehen. Die Charts können per iFrame ingebunden werden. Wem das nicht reicht, kann sich die Daten von thingspeak.com auch via Webservice holen und selbst Diagramme bauen.

Luftdruck live im iFrame

 

 Luftfeuchte live im iFrame

 

Links





30.08.2015

Personenwaage mit Internetanschluss: mit Wii Balance Board via Bluetooth ins Internet

Ziel: Personenwaage drahtlos ins Internet

Ein Wii-Balance-Board soll als Personenwaage benutzt werden und zwar so, daß man mit dem Wiegen morgens wenig Aufwand hat: einschalten, draufstellen muß genügen. 
Das gemessene Gewicht wird dann im Internet gespeichert und visualisiert.

Kommunikation über Bluetooth mit Raspberry Pi

Das Wii-Balance-Board kommuniziert per Bluetooth mit der Wii. Das Protokoll ist zwar proprietär, aber in neueren Linux-Kerneln sind dafür Treiber eingebaut. Das heisst ein Raspberry Pi (mit Bluetooth-Dongle) kann die Werte  auslesen und ins Internet bringen.

Existierende Scripte

Stavros Korokithakis hat auf GitHub ein Script zur Verfügung gestellt, das mit Hilfe der wiiboard-simple-Library Werte vom Balance-Board lesen kann. Was hier fehlt, ist eine Weg, die Daten irgendwo zu speichern und darzustellen.

Hardware: Kompatibel zum Wii-Balance-Board: Snakebyte

Auf ebay gibt es günstige "kompatible" Balance-Boards - ich habe ein Snakebyte-Board gekauft und das verwendet.

Problem: Bluetooth-Pairing

Mein SnakeByte hat leider  ein  Problem: man muß es bei jeder Benutzung pairen. Dummerweise ist die "Pair"-Taste im Batteriefach - und am frühen Morgen das Board umdrehen, das Batteriefach zu öffnen und die "Pair"-taste zu drücken ist einfach zu aufwendig.

Hardware-Modifikation

Als Abhilfe habe ich die Power-Taste abgeklemmt und parallel zur "Pair"-Taste geschaltet. Dazu braucht man nur ein Kabel anzulöten, vorher muß man aber 24(!) Schrauben lösen, um da ran zu kommen.

Geöffnetes Balance-Board: Kabel (blau) verbindet Einschalter (linker Kringel) mit Pair-Schalter (rechter Kringel)
Die Schalter sind per Flachbandkabel mit Hauptplatine und Pair-Schalter im Batteriefach verbunden. Ich habe das Kabel vom Einschalter unterbrochen und mit einem extra Kabel an den Pair-Schalter gelötet. Der andere Pol ist am Schalter mit Masse verbunden. Dazu schaut man sich die Kabelführung genau an- das ist ein bischen fummelig.

Ein Druck auf den Einschalter betätigt nun also zusätzlich den Pair-Schalter, indem er dessen Kontakt auf Masse zieht. Erstaunlicherweise klappt es prima: das Board wird eingeschaltet und gleich in den Pair-Modus versetzt..

Bluetooth-Dongle am Raspberry Pi

Für den Raspberry Pi brauch man noch ein USB-Bluetooth-Dongle. Hier ist kann man jedes Dongle verwenden, das erkannt wird, es ist kein Bluetooth-Low-Energy nötig.

Software

Als Software zum Empfang der Daten läuft auf einem Raspberry Pi eine leicht modifizierte Version von Stavros Korokithakis Python-Script gr8w8upd8m8. Es steht auf GitHub zum Download bereit.

Zunächst installiert man auf dem Raspberry Pi die bluez-utils package und die python-bluez-Library.
Anschließend braucht man noch mein modifiziertes Python-Script (https://github.com/hermann-kurz/gr8w8upd8m8) und einen API-Key von Thingspeak.com. Dorthin wandern dann die Messdaten.

Das Python-Script kann dann in einer Endlos-Schleife von einem Shell-Script gestartet werden, oder per daemon-tools auf dem Raspberry Pi installiert werden.

Messung

Nun reicht ein morgendlicher Tritt gegen die Power-Taste: das Balance-Board wird eingeschaltet und der Pair-Vorgang startet. Auf Raspberry-Pi-Seite bekommt das ein Python-Script mit und startet nach dem pairen einen Meßvorgang.

Das Ergebnis wird dann an thingspeak.com übertragen und kann als schöne Kurve angezeigt werden. Hier ein Screenshot (links wurde versehentlich was abgeschnitten).

Links



22.06.2015

Binäruhr mit dem MSP430

Binär-Uhren sind total cool

eigentlich wollte ich schon immer eine bauen. Nun ist es soweit :-)
Binary clock on breadboard

Rechts das Breadboard mit den LEDs: die fünf grünen LEDs oben zeigen die Stunden (die LED ganz links leuchtet),  die sechs gelben LEDs unten die Minuten (drei LEDs leuchten).

Links sieht man das TI Launchpad.

Die Uhr zeigt gerade 16:41 Uhr an:

Stunden: 2^4 = 16
Minuten: 2^5 + 2^3 + 2^0 = 32 + 8 + 1 = 41



Material

Benötigt wird
  • TI Launchpad MSP-EXP430G2
  • MSP430G2452 oder MSP430g2252 (auf neueren Launchpads dabei)
  • 11 LEDs
  • 11 Widerstände
  • Lötzinn
  • Breadboard

TI Launchpad MSP-EXP430G2

Das Launchpad von Texas Instruments ist ein preisgünstiges Board, das mit zwei Microcontroller-Chips aus der MSP430-Familie geliefert wird. Es besitzt einen USB-Anschluß, über den die Chips programmiert werden können. Erhältlich ist es bei den einschlägigen Versandhändlern (z.B. Watterott, Reichelt, Conrad).

Es wird zwar ein Uhrenquarz mitgeliefert, aber er ist noch nicht eingelötet - das muß man selbst nachholen. Da der Quarz sehr klein ist, braucht man dazu eine ruhige Hand, aber es ist machbar. Eine Anleitung dazu gibt es unter http://43oh.com/2010/08/wiring-the-32khz-crystal-to-the-launchpad/

Damit ist der schwierigste Teil schon erledigt. Nächster Schritt ist es, einige Pins des Launchppads über Widerstände (220 Ohm) mit den LEDs zu verbinden. Das geht am schnellsten mit einem Breadboard und dazu passenden Kabeln.

Verdrahtung

LEDs für Minuten


LED-Bit MSP430-Pin
0 P1_5
1 P2_0
2 P1_3
3 P1_2
4 P1_1
5 P1_0

LEDs für Stunden


LED-Bit MSP430-Pin
0 P2_3
1 P2_4
2 P2_5
3 P2_6
4 P2_7

Aussehen

Aussehen tut das ganz bei mir so:

Anschließend muß noch die Software auf den MSP430G2452 aufgespielt werden. Das geht mit der Energia IDE, einer auf den MSP430 angepassten Arduino-IDE. (hier schonmal beschrieben: http://www.µc.net/2015/02/energia-arduino-in-rot-fur-den-msp430.html)

Die Uhr kann dann mit dem Taster "S2" auf dem Launchpad gestellt werden, die Uhr zählt dann schnell hoch. Rechtzeitig stoppen, sonst muss man noch ne extra Runde drehen..

Code

Den Code habe ich auf GitHub abgelegt, er ist hier zu finden.

Es gibt noch einige Verbesserungspotential, z.B. beim Stellen der Uhr - das dauert nachmittags recht lange. Es werden auch ziemlich viele Pins benötigt, weil die Anzeige nicht gemultiplexed ist.

Links



30.03.2015

ESP8266 mit Arduino-IDE direkt programmieren!

Das ESP8266-WiFi-Modul ist nun direkt mit einer angepassten Arduino-IDE programmierbar!

Das Modul ist damit nochmal leichter zugänglich geworden und kann Arduinos in vielen Anwendungsfällen ersetzen. Durch die geringe Größe und den extrem niedrigen Preis sind die ESP8266-Module für Internet-of-things (IoT)-Anwendungen ideal geeignet.

Insbesondere der neue Arduino Yun, der ein eigenes WiFi-Modul (mit embedded Linux) besitzt, aber auch etwa 65€ kostet, hat dadurch Konkurrenz für einfache Anwendungsfälle bekommen.

Ein ESP8266-Modul gibt es ab etwa 4€ zu kaufen! Es hat - im Vergleich zum Arduino Yun - sehr wenig GPIOs, aber oft werden auch nur wenige GPIOs gebraucht. Auch die Software-Unterstützung ist noch nicht vollständig, aber das wird sicher noch kommen.


Die angepasste Arduino-IDE  kann von GitHub heruntergeladen werden


In der angepassten IDE (Version 1.6.1) ist nun ein "Generic ESP8266 board" wählbar



und als “Programmer” kann man  "esptool" auswählen.








Die Programmierung erfolgt über einen USB/seriell-Adapter





Links

07.03.2015

LED-Morse-Thermometer mit MSP430G2231

Die Energia-IDE (ein Arduino-IDE-Derivat mit MSP430-Target, hier besprochen) enthält einige Beispiele - unter anderem ein Thermometer, das die gemessenen Werte seriell ausgibt. Ich habe das Beispiel so modifiziert, daß die Temperatur stattdessen über LEDs gemorst wird. Benötigt wird dazu ein TI-Launchpad, ich hatte da noch eines rumliegen. Beim Launchpad dabei ist auch ein MSP430G2231, der auf dem Chip ein Thermometer hat und 2kB Flash besitzt.

Nach Einrichten der IDE kann man den Code direkt in den Controller laden und starten. Rotes Morsen bedeutet eine positive Temperatur, grün heisst, dass die gemorste Zahl eine Temperatur unter null Grad ist.

Ich habe dann den Chip aus dem Launchpad genommen, LEDs & Reset-Schaltung freihändig verdrahtet und zwei Babyzellen drangelötet. Die enthalten etwa 8000mAh und sollten für ca ein Jahr Energie liefern. Die Schaltung kam in ein altes Marmeladenglas und liegt momentan draussen im Schnee und morst da die Temperatur vor sich hin. Sehr praktisch :-)

27.02.2015

Energia: Arduino in rot für den MSP430 und ARM

Was ist Energia?

Wer gerne mit der Arduino-IDE arbeitet, aber mal den MSP430-Controller von TI benutzen möchte, für den ist die Energia-IDE ideal.

Das Energia-Projekt nimmt die originale  Arduino-IDE und hat die Libraries auf den MSP430 portiert. Außerdem wurde die IDE eingefärbt :-) Ergebnis ist, daß die meisten Arduino-Sketches fast direkt benutzt werden können! Auch das übrige Handling ist identisch zur Arduino-IDE - man muß sich also nicht umgewöhnen. Es gibt natürlich einige Hardware-Unterschiede zwischen den Prozessor-Familien, aber die-Arduino-IDE/Libraries abstrahiert die Hardware so gut, daß das beherrschbar ist.

Das Energia-Projekt wurde von einem TI-Mitarbeiter gestartet. Er arbeitet jetzt Vollzeit daran.

Boards

TI bietet extrem preisgünstige Boards (TI-Launchpad) an. Sie haben alle eine USB-Schnittstelle und können direkt angesprochen werden -es muß auch kein Bootloader installiert werden. Fertige Projekte können die Boards nutzen, oder man kann die MSP430-Chip aus dem Board nehmen und in der Ziel-Schaltung einsetzen.

MSP430

MSP430-Prozessoren arbeiten mit 16 Bit haben etwas mehr Dampf als AVRs. Außerdem sind sie recht preisgünstig und einige bieten Features, die es bei AVRs nicht so gibt, z.B. nichtflüchtiges FRAM.

ARM-Cortex

Neben dem MSP430 werden auch diverse Arm-Cortex-Boards mit bis zu 120MHz Takt und 1MB Flash/256kB RAM unterstützt.

WiFi / IoT mit CC3200

We WiFi braucht kann ein CC3200 nehmen - auch das läuft mit Energia.

Installation


Installation unter Ubuntu 12.04 war bei mir sehr einfach: tar.gz auspacken, und starten. Vorher musste noch eine udev-Regel angepasst werden, damit die IDE Zugriff auf USB hat, das geht so:

die Datei
/etc/udev/rules.d/46-TI_launchpad.rules
anlegen und folgende Zeile dort eintragen:
ATTRS{idVendor}=="0451", ATTRS{idProduct}=="f432", MODE="0660", GROUP="plugdev"
anschliessend
sudo restart udev

USB einstecken, fertig. Nun kann die IDE benutzt werden.

Insgesamt ein sehr interessanter Ansatz, die etwas sperrigen Entwicklungstools durch was leichteres zum Einstieg zu ersetzen. Auf der Energia-Website gibt es jede Menge professionell aufbereiteter Infos, Tutorials, etc.

02.02.2015

Unglaublich: Windows 10 auf Raspberry Pi 2 angekündigt!

Microsoft wird richtig cool :-) Es geschehen noch Zeichen und Wunder..

Sie haben Windows 10 für den neuen Raspberry Pi 2 angekündigt. Und das ganze gibt es kostenlos für Entwickler. Offenbar will Microsoft sich ein Stück vom "Internet-Of-Things"-Kuchen abschneiden, der ja von den Stückzahlen extrem interessant ist. Mal sehen, ob das hinhaut.

01.02.2015

Raspberry Pi 2: sechs mal so schnell wie der Alte

Die Raspberry Pi Foundation hat die Verfügbarkeit des neuen Raspberry Pi 2 angekündigt. Er soll etwa sechs mal so schnell sein, wie das Vorgänermodell und hat nun doppelt so viel Speicher (1GB statt 512MB). Darin arbeiten jetzt vier Kerne (statt bisher zwei) mit 900 MHz Taktfrequenz (statt 700 MHz). Sehr cool!
  • http://www.raspberrypi.org/raspberry-pi-2-on-sale/